
public class Camera {

	private final Vector position;
	private final Vector lookAtPoint;
	private final Vector upVector;
	private final Vector look;
	private final Vector Du;
	private final Vector Dv;
	private final float screenDistance;
	private final float screenWidth;
	private final float screenHeight;
	

	
	public Camera(Vector pos, Vector lookAt, Vector up, float screenD, float screenW){
		
		position=pos;
		lookAtPoint=lookAt;
		upVector=up;
		screenDistance=screenD;
		screenWidth=screenW;
		screenHeight = (float)Math.sqrt(screenD*screenD - screenW*screenW); ///not sure at all!
		
		
		
		look = lookAtPoint.subtructVector(position);
		Du = look.crossProduct(upVector).normalizedVector();
		Dv = look.crossProduct(Du).normalizedVector();
		
	}
		
	public Vector getPosition(){
		return position;
	}

	public Vector getLookAtPoint(){
		return lookAtPoint;
	}
	
	public Vector getUpVector(){
		return upVector;
	}
	
	public float getScreenDistance(){
		return screenDistance;
	}
	
	public float getScreenWidth(){
		return screenWidth;
	}
	
	public float getScreenHeight(){
		return screenHeight;
	}
	
	public Vector getDu(){
		return Du;
	}
	
	public Vector getDv(){
		return Dv;
	}
	
	
	public Vector getLook(){
		return look;
	}
	
	
}
